﻿using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Nop.Web.Framework.Mvc;
using Nop.Web.Framework;

namespace Nop.Plugin.Pricing.PreciousMetals.Models
{
    public class PreciousMetalsGroupModel : BaseNopEntityModel
    {
        public IList<SelectListItem> AvailableCategories { get; set; }
        public IList<SelectListItem> AvailableWeights { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.ProductCategory")]
        public int CategoryId { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverrideMetalType")]
        public bool OverrideMetalType { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.MetalType")]
        public int MetalType { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverrideQuoteType")]
        public bool OverrideQuoteType { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.QuoteType")]
        public int QuoteType { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverrideMathType")]
        public bool OverrideMathType { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.MathType")]
        public int MathType { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverrideLowerAmount")]
        public bool OverrideLowerAmount { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.LowerAmount")]
        public decimal LowerAmount { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverrideWeight")]
        public bool OverrideWeight { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.Weight")]
        public decimal Weight { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverrideWeightUnit")]
        public bool OverrideWeightUnit { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.WeightUnit")]
        public int WeightId { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverridePercentMarkup")]
        public bool OverridePercentMarkup { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.PercentMarkup")]
        [DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)]
        public decimal PercentMarkup { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverrideFlatMarkup")]
        public bool OverrideFlatMarkup { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.FlatMarkup")]
        [DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)]
        public decimal FlatMarkup { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverrideTierPriceType")]
        public bool OverrideTierPriceType { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.TierPriceType")]
        public int TierPriceType { get; set; }


        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverridePriceRounding")]
        public bool OverridePriceRounding { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.PriceRounding")]
        public int PriceRounding { get; set; }


        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.OverridePriceRoundingType")]
        public bool OverridePriceRoundingType { get; set; }

        [NopResourceDisplayName("Admin.Catalog.PreciousMetal.PriceRoundingType")]
        public int PriceRoundingType { get; set; }

        /// <summary>
        /// This is the base currency for display only
        /// </summary>
        public string BaseCurrencyIn { get; set; }
    }
}